Chrome 137

Fecha de lanzamiento estable: 27 de mayo de 2025

A menos que se indique lo contrario, los siguientes cambios se aplican a la versión del canal estable de Chrome 137 para Android, ChromeOS, Linux, macOS y Windows.

CSS y IU

Función if() de CSS

La función if() de CSS proporciona una forma concisa de expresar valores condicionales. Acepta una serie de pares condición-valor, delimitados por punto y coma. La función evalúa cada condición de forma secuencial y muestra el valor asociado con la primera condición verdadera. Si ninguna de las condiciones se evalúa como verdadera, la función muestra un flujo de tokens vacío. Esto te permite expresar una lógica condicional compleja de una manera simple y concisa.

Ejemplo:

div {
  color: var(--color);
  background-color: if(style(--color: white): black; else: white);
}

.dark {
  --color: black;
}

.light {
  --color: white;
}
<div class="dark">dark</div>
<div class="light">light</div>

Error de seguimiento #346977961 | Entrada de ChromeStatus.com | Especificación

Propiedades reading-flow y reading-order de CSS

La propiedad CSS reading-flow controla el orden en el que los elementos de un diseño flex, de cuadrícula o de bloque se exponen a las herramientas de accesibilidad y se enfocan con la navegación de enfoque del teclado de tabulación.

La propiedad CSS reading-order permite que los autores anulen manualmente el orden dentro de un contenedor de flujo de lectura. Es un número entero con el valor predeterminado de 0.

Obtén más información sobre estas propiedades en Cómo usar el flujo de lectura de CSS para la navegación de enfoque secuencial lógica y prueba algunos ejemplos.

Error de seguimiento #40932006 | Entrada de ChromeStatus.com | Especificación

Ignora el espaciado entre letras en las letras cursivas

Esta función agrega lógica para ignorar la configuración del espaciado de letras para las letras cursivas, como lo especifica el desarrollador, de acuerdo con la especificación, para garantizar que el espaciado de letras no interrumpa la estructura de las palabras y tenga como objetivo generar una mejor experiencia del usuario para los usuarios que dependen de las letras cursivas.

Con esta función, Chrome garantiza que los textos en cursiva sean legibles y tengan el espaciado correcto, incluso si las fuentes no tienen funciones tipográficas avanzadas.

Las escrituras a las que se aplica esto en Chromium son el árabe, el Hanifi Rohingya, el mandaico, el mongol, el N'Ko, el Phags Pa y el siríaco, ya que estas escrituras se consideran cursivas según la especificación.

Error de seguimiento #40618336 | Entrada de ChromeStatus.com | Especificación

API de Selection getComposedRanges y direction

Esta función envía dos métodos de API nuevos para la API de Selection:

  • Selection.direction, que muestra la dirección de la selección como none, forward o backward
  • Selection.getComposedRanges(), que muestra una lista de 0 o 1 elementos compuestos StaticRange

Un StaticRange compuesto puede cruzar los límites de sombra, lo que un Range normal no puede hacer.

Por ejemplo:

const range = getSelection().getComposedRanges({ shadowRoots: [root] });

Si la selección cruza un límite de raíz de sombra que no se proporciona en la lista shadowRoots, los extremos de StaticRange se redefinirán para que estén fuera de ese árbol. Esto garantiza que Chrome no exponga árboles de sombras desconocidos.

Error de seguimiento #40286116 | Entrada de ChromeStatus.com | Especificación

Apoya a offset-path: shape()

Admite offset-path: shape() para permitir el uso de formas responsivas para establecer la ruta de animación.

Error de seguimiento #389713717 | Entrada de ChromeStatus.com | Especificación

Compatibilidad con el atributo transform en SVGSVGElement

Esta función permite aplicar propiedades de transformación, como escalamiento, rotación, traslación y sesgo, directamente al elemento raíz <svg> con su atributo transform. Esta mejora te permite manipular todo el sistema de coordenadas SVG o su contenido en su totalidad, lo que proporciona una mayor flexibilidad en la creación de gráficos vectoriales dinámicos, responsivos e interactivos. Con la compatibilidad con este atributo, el elemento <svg> se puede transformar sin requerir elementos de wrapper adicionales ni soluciones complejas de CSS, lo que optimiza el proceso de compilación de gráficos web escalables y animados.

Error de seguimiento #40313130 | Entrada de ChromeStatus.com | Especificación

Color de los elementos destacados del sistema para la propiedad accent-color

Esto te permite usar el color de contraste del sistema operativo para los elementos de formulario. Cuando usas la propiedad CSS accent-color, puedes asegurarte de que los elementos de formulario, como las casillas de verificación, los botones de selección y las barras de progreso, adopten automáticamente el color de contraste definido por el sistema operativo del usuario. Esta función es compatible con macOS desde 2021 y ahora también lo es con Windows y ChromeOS.

Error de seguimiento #40764875 | Entrada de ChromeStatus.com | Especificación

Omite el fragmento para permitir que <use> haga referencia al elemento raíz de un documento externo.

Esta función optimiza el elemento <use> de SVG, ya que flexibiliza los requisitos de referencia. Antes de Chrome 137, debías hacer referencia de forma explícita a fragmentos dentro del documento SVG. Si no se proporciona un ID de fragmento, <use> no podrá resolver el destino y no se renderizará ni se hará referencia a nada.

Por ejemplo, un elemento <use> que hace referencia a un archivo externo con identificador de fragmento:

<svg>
  <use xlink:href="myshape.svg#icon"></use>
</svg>

En este ejemplo, #icon es el identificador de fragmento que apunta a un elemento con id="icon" dentro de myshape.svg.

Sin un identificador de fragmento:

<svg>
  <use xlink:href="myshape.svg"></use>
</svg>

Con esta función, omitir fragmentos o simplemente proporcionar el nombre del archivo SVG externo hará que se haga referencia automáticamente al elemento raíz, lo que elimina la necesidad de alterar el documento al que se hace referencia solo para asignar un ID a la raíz. Esta mejora simplifica este proceso de edición manual y mejora la eficiencia.

Error de seguimiento #40362369 | Entrada de ChromeStatus.com | Especificación

Tipos de colores de punto flotante del lienzo

Presenta la capacidad de usar formatos de píxeles de punto flotante (en lugar de punto fijo de 8 bits) con CanvasRenderingContext2D, OffscreenCanvasRenderingContext2D y ImageData.

Esto es necesario para aplicaciones de alta precisión (por ejemplo, visualización médica), contenido de alto rango dinámico y espacios de color de trabajo lineales.

Error de seguimiento #40245602 | Entrada de ChromeStatus.com | Especificación

view-transition-name: match-element

El valor match-element genera un ID único según la identidad del elemento y cambia el nombre del elemento. Esto se usa en casos de apps de una sola página en los que se mueve el elemento y quieres animarlo con una transición de vista.

Error de seguimiento #365997248 | Entrada de ChromeStatus.com | Especificación

Pagos

Tipo de error de alineación que se arroja para la creación de credenciales de WebAuthn de payment: SecurityError se convierte en NotAllowedError

Corrige el tipo de error que se arroja durante la creación de credenciales de WebAuthn para las credenciales de payment. Debido a una discrepancia histórica en las especificaciones, crear una credencial payment en un iframe de origen cruzado sin una activación del usuario arrojaría una SecurityError en lugar de una NotAllowedError, que es lo que se arroja para las credenciales de no pago.

Este es un cambio rotundo, aunque sea de nicho. Se ve afectado el código que detectó anteriormente el tipo de error generado (por ejemplo, e instanceof SecurityError). El código que solo controla errores durante la creación de credenciales (por ejemplo, catch (e)) seguirá funcionando correctamente.

Error de seguimiento #41484826 | Entrada de ChromeStatus.com | Especificación

API web

Partición de URLs de BLOB: recuperación y navegación

Como continuación de Storage Partitioning, Chrome implementó la partición del acceso a la URL de BLOB por clave de almacenamiento (sitio de nivel superior, origen de marco y el booleano has-cross-site-ancestor), a excepción de las navegaciones de nivel superior que permanecerán particionadas solo por el origen del marco. Este comportamiento es similar al que implementan actualmente Firefox y Safari, y alinea el uso de la URL de BLOB con el esquema de partición que usan otras APIs de almacenamiento como parte de Storage Partitioning. Además, Chrome ahora aplica noopener en las navegaciones de nivel superior iniciadas por el renderizador a URLs de BLOB en las que el sitio correspondiente es un sitio cruzado con el sitio de nivel superior que realiza la navegación. Esto alinea a Chrome con un comportamiento similar en Safari, y las especificaciones relevantes se actualizaron para reflejar estos cambios.

Error de seguimiento #40057646 | Entrada de ChromeStatus.com

Pilas de llamadas en los informes de fallas de páginas web que no responden

Esta función captura la pila de llamadas de JavaScript cuando una página web deja de responder debido a que el código de JavaScript ejecuta un bucle infinito o alguna otra operación de procesamiento muy larga. Esto ayuda a los desarrolladores a identificar la causa de la falta de respuesta y solucionarla con mayor facilidad. La pila de llamadas de JavaScript se incluye en la API de informes de fallas cuando el motivo no responde.

Error de seguimiento #1445539 | Entrada de ChromeStatus.com | Especificación

Document-Isolation-Policy

Document-Isolation-Policy permite que un documento habilite crossOriginIsolation por sí mismo, sin tener que implementar COOP o COEP, y sin importar el estado crossOriginIsolation de la página. La política está respaldada por el aislamiento de procesos. Además, los subrecursos entre dominios del documento que no sean de CORS se cargarán sin credenciales o deberán tener un encabezado CORP.

Error de seguimiento #333029146 | Entrada de ChromeStatus.com | Especificación

Ed25519 en la criptografía web

Esta función agrega compatibilidad con algoritmos Curve25519 en la API de Web Cryptography, en particular, el algoritmo de firma Ed25519.

Error de seguimiento #1370697 | Entrada de ChromeStatus.com | Especificación

Prevención de seguimiento de HSTS

Mitiga el seguimiento de usuarios por parte de terceros que usan la caché de HSTS.

Esta función solo permite actualizaciones de HSTS para navegaciones de nivel superior y bloquea las actualizaciones de HSTS para solicitudes de subrecursos. De esta manera, los sitios de terceros no pueden usar la caché de HSTS para realizar un seguimiento de los usuarios en la Web.

Error de seguimiento #40725781 | Entrada de ChromeStatus.com

WebAssembly

Integración de promesas de JavaScript

La integración de promesas de JavaScript (JSPI) es una API que permite que las aplicaciones de WebAssembly se integren con promesas de JavaScript.

Permite que un programa de WebAssembly actúe como generador de una promesa y que el programa de WebAssembly interactúe con APIs que contienen promesas.

En particular, cuando una aplicación usa JSPI para llamar a una API que contiene promesas (JavaScript), se suspende el código de WebAssembly y al llamador original del programa de WebAssembly se le otorga una promesa que se cumplirá cuando el programa de WebAssembly finalmente se complete.

Entrada de ChromeStatus.com | Especificación

Sugerencias de Branch para WebAssembly

Mejora el rendimiento del código WebAssembly compilado, ya que le informa al motor que es muy probable que una instrucción de rama en particular tome una ruta específica.

Esto permite que el motor tome mejores decisiones para el diseño de código (mejora los aciertos de la caché de instrucciones) y la asignación de registros.

Entrada de ChromeStatus.com | Especificación

WebGPU

GPUTextureView para la vinculación de externalTexture

Ahora se permite usar un GPUTextureView para una vinculación externalTexture cuando se crea un GPUBindGroup.

Error de seguimiento #398752857 | Entrada de ChromeStatus.com | Especificación

Sobrecarga de copyBufferToBuffer

El método copyBufferToBuffer() de GPUCommandEncoder ahora incluye una forma más sencilla de copiar búferes completos con una nueva sobrecarga con parámetros de tamaño y compensaciones opcionales.

Entrada de ChromeStatus.com | Especificación

Enterprise

Registro y generación de informes de direcciones IP

Chrome Enterprise mejorará sus capacidades de supervisión de seguridad y respuesta ante incidentes recopilando y registrando direcciones IP locales y remotas, y enviándolas a los registros de investigación de seguridad (SIT). Además, Chrome Enterprise permitirá que los administradores envíen las direcciones IP a proveedores externos y propios de SIEM a través del conector de informes de Chrome Enterprise.

Esta función está disponible para los clientes de Chrome Enterprise Core.

Entrada de ChromeStatus.com

Pruebas de origen

Atributo de bloqueo de renderización de velocidad de fotogramas completa

Agrega un nuevo token de bloqueo de renderización full-frame-rate a los atributos de bloqueo. Cuando el renderizador se bloquea con el token full-frame-rate, este funcionará a una velocidad de fotogramas más baja para reservar más recursos para la carga.

Error de seguimiento #397832388 | Entrada de ChromeStatus.com

Pausa la reproducción de contenido multimedia en iframes que no se renderizaron

Agrega una política de permisos media-playback-while-not-rendered para permitir que los sitios web de incorporación detengan la reproducción de contenido multimedia de iframes incorporados que no se renderizan, es decir, que tengan su propiedad display establecida en none. Esto debería permitir a los desarrolladores compilar experiencias más fáciles de usar y mejorar el rendimiento, ya que permite que el navegador controle la reproducción de contenido que no es visible para los usuarios.

Prueba de origen | Error de seguimiento #351354996 | Entrada de ChromeStatus.com

API de Rewriter

La API de Rewriter transforma y reformula el texto de entrada de las formas solicitadas, con la seguridad de un modelo de lenguaje de IA integrado en el dispositivo. Los desarrolladores pueden usar esta API para quitar redundancias dentro de un texto para que se ajuste a un límite de palabras, reformular mensajes para que se adapten al público objetivo o para que sean más constructivos si se detecta que un mensaje usa lenguaje tóxico, reformular una publicación o un artículo para usar palabras y conceptos más simples, y mucho más.

Prueba de origen | Error de seguimiento #358214322 | Entrada de ChromeStatus.com | Especificación

API de Writer

La API de Writer se puede usar para escribir material nuevo a partir de una instrucción de tarea de escritura, respaldada por un modelo de lenguaje de IA integrado en el dispositivo. Los desarrolladores podrán usar esta API para generar explicaciones textuales de datos estructurados, redactar una publicación sobre un producto en función de opiniones o descripciones, expandir las listas de pros y contras en vistas completas y mucho más.

Prueba de origen | Error de seguimiento #357967382 | Entrada de ChromeStatus.com | Especificación